#ifndef EDITORMODE_H
#define EDITORMODE_H

#include "appGlobals.h"
#include "states/abstractstate.h"
class Document;

namespace Modes {

class EditorModeManager;

class EditorMode : public AbstractState
{
	Q_OBJECT
	friend class EditorModeManager;
public:
	EditorMode(const QString& editorId, EditorModeManager& em);

	EditorModeManager& editorModeManager();

	virtual void updateGui() = 0;
protected:
	virtual void onDocumentChanged(QPointer<Document> doc) = 0;
private:
signals:
	void documentChanged(QPointer<Document> doc);
};

} // namespace Modes

#endif // EDITORMODE_H
